use anyhow::{Result, anyhow};
use thirtyfour::DesiredCapabilities;
use thirtyfour::WebDriver;
use thirtyfour::prelude::*;
use tokio;
//****************************************************************************************/
// 1) 安装Edge浏览器 
// 2) 下载Edge浏览器驱动,并将msedgedriver.exe添加到系统Path中
// 3) 导包
//    ```toml
//        [dependencies]
//        anyhow = "1.0.97"
//        regex = "1.11.1"
//        reqwest = { version = "0.12.15", features = ["json"] }
//        tokio = { version = "1.44.1", features = ["full"] }
//        thirtyfour = "0.35.0"
//        serde_json = "1.0.140"
//    ```
// 4) 手动运行 msedgedriver.exe
// 5) 复制msedgedriver.exe输入出的端口号,并在代码中修改
// 6) 运行代码,即可爬取网站图片
//****************************************************************************************/
#[tokio::main]
async fn main() -> Result<()> {
    // 配置Edge浏览器驱动
    let mut caps = DesiredCapabilities::edge();
    caps.set_headless()?;  // 无头模式，不显示浏览器窗口
    
    // 启动WebDriver
    let driver = WebDriver::new("http://localhost:63029", caps).await?;
    
    // 导航到目标网站
    driver.goto("https://haowallpaper.com").await?;
    
    // 等待页面加载完成
    let body = driver.query(By::Tag("body")).first().await?;
    body.wait_until().displayed().await?;
    
    // 获取所有图片元素
    let images = driver.find_all(By::Tag("img")).await?;
    
    // 提取图片URL
    for img in images {
        if let Some(src) = img.attr("src").await? {  // 直接处理Option<String>类型
            println!("Found image: {}", src);
        }
    }
    
    // 关闭浏览器
    driver.quit().await?;
    
    Ok(())
}
